cl/beacon: report pending blob backfill availability - #23213
Draft
domiwei wants to merge 3 commits into
Draft
Conversation
This was referenced Aug 12, 2026
domiwei
force-pushed
the
kewei/fix-blob-backfill-boundary
branch
from
August 12, 2026 14:12
f3d0e04 to
7131569
Compare
domiwei
force-pushed
the
kewei/blob-backfill-availability
branch
from
August 12, 2026 16:34
5d3af81 to
6e5df70
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
503when requested canonical blob data is still pending backfill instead of returning a misleading empty successblob_sidecars_by_rootresponses, verify them by identity and proof, and retry only missing sidecarsRelationship to #23138
This is a stacked follow-up to the minimal #23138 fix. #23138 contains only the exclusive/moving
FrozenBlobs()boundary and the 16-peer startup blocker from #22429.All retry, concurrency, partial-response, completion, reorg, Fulu, storage, and
503availability behavior is intentionally reviewed here as one lifecycle change. Review comments originally anchored to the earlier combined #23138 diff are addressed on this branch when their code moved here.The temporary base is
kewei/fix-blob-backfill-boundary. After #23138 merges, this PR can be retargeted tomainwithout changing its effective diff.API compatibility
The Beacon API endpoint schemas do not explicitly enumerate
503for these blob endpoints. This PR intentionally uses it as an Erigon extension for temporary backfill unavailability. The response follows the shared JSON error shape (codeandmessage) and usesContent-Type: application/json.Available requested indices or versioned hashes remain a
200. Empty blocks, unmatched filters, side branches, frozen data, and completed or disabled backfill preserve their normal behavior.Validation
-race, including repeated PeerDAS coalescing and canonical-transition schedulesmake lint(final complete pass:0 issuestwice)git diff --checkReview disposition
The feedback originally anchored to the earlier combined #23138 diff was applied here after the split. It covers legal sparse blob responses, truthful Deneb/Fulu completion, bounded live/backfill admission, canonical reorg and commit visibility, PeerDAS cancellation/coalescing, partial persisted data, snapshot/storage transitions, query validation, and test lifecycle hygiene.
Broader pre-existing hardening, including a separate
blob_sidecars_by_rangeadmission gate and crash-orphan cleanup, is intentionally outside this PR.